#include<stdio.h>
int is_prime(int x)
{
	if(x==1)
		return 0;
	if(x==2)
		return 1;
	int cnt = 0;
	for(int i = 2;i<x;i++)
	{
		if(x%i==0)
		{
			cnt = 0;
			break;
		}
		else
		{
			cnt = 1;
		}
	}
	return cnt;
}
int main()
{
	int arr[100]={0};
	int cnt = 0;
	int n = 0;
	scanf("%d",&n);
	int n0 = n;
	for(int i = 2;i<n;i++)
	{
		if(n==1)
			break;
		if(is_prime(i)==1)
		{
			if(n%i==0)
			{
				arr[cnt]=i;
				cnt++;
				i=1;
				n=n/i;
			}
		}
	}
	printf("%d=",n0);
	for(int j = 0;j<cnt;j++)
	{
		if(arr[j]!=0)
			printf("%d",arr[j]);
		if(j!=cnt - 1 )
		{
			printf("*");
		}
	}
	
	return 0;
}
//#include <stdio.h>
//
//int main() {
//	int n, original;
//	scanf("%d", &n);
//	original = n;  // 保存原始值用于输出
//	
//	printf("%d=", original);
//	int i = 2;
//	
//	// 分解质因数
//	while (i <= n) {
//		// 当i是n的因数时，持续除以i并输出
//		while (n % i == 0) {
//			printf("%d", i);
//			n /= i;
//			// 如果还没分解完，输出乘号
//			if (n != 1) {
//				printf("*");
//			}
//		}
//		i++;
//	}
//	
//	return 0;
//}
